﻿using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using UCL.Powersource.Analysis;

namespace UCL.Powersource.Statistics.CodeIndex
{
    [Export(typeof(IStatistic))]
    [DataContract(IsReference = true)]
    public class RFCStatisticAverage : CodeIndexStatistic
    {

        public static Guid RFCStatisitcAverage_Guid = new Guid("5C376341-92DD-4233-BF2B-EBA4DB576E30");

        public RFCStatisticAverage()
            : base(StatisticTypeValue.Average)
        {
            _calculator = CalculatorFactory.getRFCCalculator();
        }

        public override string Label
        {
            get { return "Average value for RFC"; }
        }

        public override string Description
        {
            get
            {
                return
                    "Statistic calculating the Average number of methods that " +
                    "can be executed by a class in the project in response to " +
                    "a message/invokation received by an object of that class";
            }
        }

        public override string Name
        {
            get { return "RFCStatisticAverage"; }
        }

        public override Guid Statistic_Guid
        {
            get { return RFCStatisitcAverage_Guid; }
        }

        protected override StatisticTypeValue ValueType
        {
            get { return StatisticTypeValue.Average; }
        }

        protected override StatisticDefinition StatisticDef
        {
            get { return StatisticDefinition.RFC; }
        }
    }
}
